﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Ext.Net;
using PerfilEmpreendedor.Dao.Factory;
using PerfilEmpreendedor.Dao.Interfaces;
using System.Web.Security;
using PerfilEmpreendedor.Dao.Factory;
using PerfilEmpreendedor.Bo.Model;

namespace PerfilEmpreendedor.FrontEnd
{
    public partial class Login : System.Web.UI.Page
    {
        private DaoFactory daoFactory = DaoFactory.GetInstance;
        protected void Page_Load(object sender, EventArgs e)
        {
            FormsAuthentication.SignOut();
        }
        protected void btnLogin_Click(object sender, DirectEventArgs e)
        {
            Autenticar();
        }
        
        private void Autenticar()
        {
            IUsuarioDao usuarioDao = daoFactory.GetUsuarioDao;
            try
            {
                //TODO: não esquecer de habilitar a criptografia
                Usuario usuario=usuarioDao.Autenticar(txtLogin.Text.Trim(), txtSenha.Text.Trim());
                if (usuario!=null)
                {
                    if (!usuario.Ativo)
                    {
                        throw new Exception("Conta inativa.");
                    }
                    else
                    {
                        FormsAuthentication.RedirectFromLoginPage(usuario.Id.ToString(), false);
                        if (Request["ReturnUrl"] != null)
                        {
                            Response.Redirect(Request["ReturnUrl"]);
                        }
                        else
                        {
                            if (usuario.Perfil.Id == 2)
                            {
                                Response.Redirect(FormsAuthentication.DefaultUrl);
                            }
                            else
                            {
                                Response.Redirect("Administrador.aspx");
                            }
                        }
                    }

                }
                else
                {
                    throw new Exception("Usuário ou senha inválidos.");
                }
            }
            catch (Exception ex)
            {
                ExtFunctions.Alert(ex.Message, MessageBox.Icon.ERROR);
            }
        }
    }
}